Request Processing in ASP.NET Core: Kestrel Server and HTTP Pipeline

ASP.NET Core में रिक्वेस्ट प्रोसेसिंग: केस्ट्रल सर्वर और HTTP पाइपलाइन

.NET Core के भीतर जब आप वेब एप्लीकेशन बनाते हैं, तो यह वेब एप्लीकेशन वस्तुतः एक कंसोल एप्लीकेशन के रूप में स्टार्ट होता है। यह कंसोल एप्लीकेशन केस्ट्रल वेब सर्वर (Kestrel Web Server) को स्टार्ट करता है और यह केस्ट्रल वेब सर्वर के भीतर आपका एप्लीकेशन होस्ट होता है।

वेब सर्वर की मदद से कंसोल एप्लीकेशन को वेब एप्लीकेशन में रूपांतरित कर दिया जाता है।

केस्ट्रल वेब सर्वर एक बहुत ही छोटा सा वेब सर्वर है और इस वेब सर्वर के भीतर ही आप अपने एप्लीकेशन के लॉगिंग, स्टैटिक फाइल, कॉन्फ़िगरेशन, HTML जेनरेशन इत्यादि सारे फीचर को रन करते हैं।

ध्यातव्य है कि ASP.NET वेब फ्रेमवर्क का एक नजदीकी संबंध विंडोज के IIS (Internet Information Services) वेब सर्वर होस्टिंग से था, लेकिन इस तरह का नजदीकी संबंध .NET Core के साथ उचित नहीं है। अतः माइक्रोसॉफ्ट ने एक नया वेब सर्वर केस्ट्रल लाया।

सर्वर कई प्रकार के होते हैं। केस्ट्रल वेब सर्वर एक HTTP वेब सर्वर है। कोई जरूरी नहीं कि सारे वेब सर्वर HTTP वेब सर्वर ही हों।

जब क्लाइंट ब्राउज़र किसी रिक्वेस्ट को वेब सर्वर के पास भेजता है, तो यह ASP.NET Core एप्लीकेशन के अंतर्गत आपका रिक्वेस्ट सीधे केस्ट्रल सर्वर के पास नहीं आता है, बल्कि पहले वह प्रॉक्सी सर्वर के पास जाता है। प्रॉक्सी सर्वर सिक्योरिटी इश्यूज को ध्यान में रखते हुए सारी चीजों पर नियंत्रण रखता है। उसके बाद वह उसे प्रोसेस करके केस्ट्रल सर्वर के पास भेज देता है।

केस्ट्रल सर्वर भेजे गए रिक्वेस्ट के आधार पर एक HttpContext ऑब्जेक्ट तैयार करता है। यह ऑब्जेक्ट एक तरह का बॉक्स होता है, जिसके भीतर रिक्वेस्ट से संबंधित सारी जानकारियां संचित होती हैं। आगे इस ऑब्जेक्ट को केस्ट्रल सर्वर HTTP पाइपलाइन और एप्लीकेशन को भेज देता है।

HTTP पाइपलाइन के अंतर्गत यह ऑब्जेक्ट प्रोसेस किया जाता है। उसके भीतर जितने भी डेटा या सूचना है, सर्विस इत्यादि होता है, उसी के अनुसार इसकी प्रोसेसिंग होती है। दूसरे शब्दों में, एप्लीकेशन के विभिन्न कंपोनेंट के द्वारा इस ऑब्जेक्ट का प्रोसेसिंग किया जाता है। प्रोसेसिंग करने के बाद अंत में HTTP रिस्पॉन्स ऑब्जेक्ट तैयार होता है जिसे केस्ट्रल सर्वर के पास भेज दिया जाता है। केस्ट्रल सर्वर इसे रिवर्स प्रॉक्सी सर्वर के पास भेज देता है और रिवर्स प्रॉक्सी सर्वर अंत में इसको क्लाइंट ब्राउज़र के पास भेज देता है। क्लाइंट ब्राउज़र के पास HTML पेज ही जाता है।

गौर करें कि HttpContext ऑब्जेक्ट जब मिडिलवेयर पाइपलाइन से गुजरता है, तो उसकी प्रोसेसिंग की जाती है। मिडिलवेयर पाइपलाइन के बाद MVC ब्लॉक आता है। MVC ब्लॉक HTML पेज को उत्पादित करने के लिए जिम्मेदार है। MVC ब्लॉक के भीतर ही एप्लीकेशन का ज्यादातर बिजनेस लॉजिक लिखा गया होता है.

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

Differences between in-process and out-of-process hosting models

Web Fundamental Concepts in Hindi for Beginners - FAQs with their Answers Part-1

Introduction to ASP.NET Core and Web Frameworks